"""
&与
|或
^异或：相同为零，不同为一
<<左移
>>右移
~取反
"""
print(bin(5))#0b101
print(bin(5<<3))#0b101000 左移三位  101---101000

#判断二进制最后一位x&1
print(9&1)#1001
#第i位(x>>i)&1
print((9>>3)&1)

#将二进制第i位设置成1 X|(1<<i)
print(bin(9|(1<<2)))#1001---1101
#将二进制第i位设置成0 x&(~(1<<i))
print(bin(9&(~(1<<0))))#1000 第0位

#判断是否为2的若干次方 x&(x-1)是否为零
print(8&(8-1))#0 8是2的次方